/**
 * 模型数据相关类型定义
 */

import { ModelObjType } from './bizUnit.types';

/**
 * 模型信息来源
 */
export type ModelInfoFrom = 'cache' | 'network';

/**
 * 模型对象类型信息
 * 来源接口: /digital-service/modelObjInfo/modelObjInfo
 */
export interface ModelObjectTypeInfo {
  detailObj: Record<string, any>[];
  icon: Record<string, any>;
  key: ModelObjType; // 使用string以支持扩展类型
  name: string;
  objType: number;
  projectId: number;
  remark: string | null;
  sort: number;
  type: string; // 目前仅有 'POINT', 'LINESTRING'(仅管线)
}

/**
 * 对象GIS模型信息 - 基于GeoJSON标准
 */
export type ObjectGisModelInfo = GeoJSON.GeoJSON;

/**
 * 对象GIS模型信息响应
 */
export interface ObjectGisModelInfoResponse {
  type: ModelObjType;
  data: ObjectGisModelInfo[];
  from: ModelInfoFrom;
  modelObjInfo: ModelObjectTypeInfo;
}

/**
 * 模型计算结果缓存信息接口
 * 存储需要大量计算的内容的缓存，如边界信息等
 */
export interface ModelBaseInfo {
  id: string; // 缓存ID，用于标识缓存内容类型
  value: any; // 缓存的值
}
